home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 1 / Gold Medal Software Volume 1 (Gold Medal) (1994).iso / drivers / ljp3fw.arj / LJPRTIII.CH < prev    next >
Text File  |  1993-09-15  |  17KB  |  431 lines

  1. /*
  2. ╔════════════════════════════════════════════════════════════════════════════╗
  3. ║ Header......: LJPRTIII.CH                                                  ║
  4. ║                                                                            ║
  5. ║ System......: HP LaserJet Series III / PCL print driver                    ║
  6. ║                                                                            ║
  7. ║ Author......: Kevin Loucks                                                 ║
  8. ║             : Box 15303                                                    ║
  9. ║             : Minneapolis  MN  55415-0303                                  ║
  10. ║             :                                                              ║
  11. ║             : (612) 376-0054                                               ║
  12. ║             :                                                              ║
  13. ║             : CI$ 76276,1333                                               ║
  14. ║                                                                            ║
  15. ║Copyright....: (c) 1993, Kevin Loucks   All rights reserved worldwide.      ║
  16. ║                                                                            ║
  17. ║Last modified: September 15, 1993                                           ║
  18. ║                                                                            ║
  19. ║ Req Hardware: HP LaserJet Series III Printer / fully PCL 5 compatible Laser║
  20. ║             : Printer - I haven't tested this on PCL 4 Printers but if they║
  21. ║             : are HP compatible they should just ignore what they can't    ║
  22. ║               support                                                      ║
  23. ║                                                                            ║
  24. ║ Req Software: Clipper 5.01  and/or 5.2c                                    ║
  25. ║                                                                            ║
  26. ║ Compilation.: Clipper LJPRTIII /A /M /N /P /W                              ║
  27. ║                                                                            ║
  28. ║                                                                            ║
  29. ╚════════════════════════════════════════════════════════════════════════════╝
  30. *
  31. ╔═════════════════════════════════════════════════════════════════════════════╗
  32. ║    these define statements establish a bunch of manifest constants that     ║
  33. ║    get used pretty extensively in the process of controling the printer     ║
  34. ║                                                                             ║
  35. ║    they are case sensitive - if you tamper with them be careful!            ║
  36. ║                                                                             ║
  37. ║    oh - definetly do not use "simpleio.ch" with this code it will cause     ║
  38. ║    highly interesting but unsatisfactory behavior                           ║
  39. ║                                                                             ║
  40. ║    some of these features don't work on some printers (simplex/duplex etc)  ║
  41. ╚═════════════════════════════════════════════════════════════════════════════╝
  42. */
  43.  
  44.    #define ESC              chr(27)
  45.  
  46. //--- JOB CONTROL COMMANDS
  47.    #define PRINTER_RESET               1
  48.    #define NUMBER_OF_COPIES            2
  49.    #define LEFT_OFFSET                 3  // offset registration in decipoints
  50.    #define TOP_OFFSET                  4  // offset registration in decipoints
  51.    #define SIMPLEX_DUPLEX              5  // for duplex printers only
  52.    #define DUPLEX_PAGE_SIDE            6  // for duplex printers only
  53.    #define JOB_SEPARATION              7  // for series 2000 ?   only
  54.  
  55.      // duplex mode selection (for duplex printers only)
  56.    #define SIMPLEX                     0
  57.    #define DUPLEX_ON_LONG_EDGE         1
  58.    #define DUPLEX_ON_SHORT_EDGE        2
  59.  
  60.      // page side selection  (duplex mode only)
  61.    #define NEXTSIDE                    0
  62.    #define FRONT_SIDE                  1
  63.    #define BACK_SIDE                   2
  64.  
  65.  
  66. // PAGE CONTROL COMMANDS
  67.      // Page Control options
  68.    #define PAGE_SIZE                   1
  69.    #define PAGE_LENGTH                 2
  70.    #define PAPER_SOURCE                3
  71.    #define LOGICAL_PAGE_ORIENT         4
  72.    #define PRINT_DIRECTION             5
  73.    #define LEFT_MARGIN                 6
  74.    #define RIGHT_MARGIN                7
  75.    #define TOP_MARGIN                  8
  76.    #define TEXT_LENGTH                 9
  77.    #define PERFORATION_REGION          10
  78.    #define HMI                         11
  79.    #define VMI                         12
  80.    #define LINE_SPACING                13
  81.    #define CLEAR_MARGINS               14
  82.    #define PAPER_DESTINATION           15
  83.  
  84.    #define FORM_FEED                   chr(12)
  85.  
  86.      //  page size - PAPER
  87.      // - correct paper tray must be installed for paper size
  88.    #define EXECUTIVE                   1   // 7.25 x 10.5
  89.    #define LETTER                      2   // 8.5  x 11
  90.    #define LEGAL                       3   // 8.5  x 14
  91.    #define A4                          26   // 210mm x 297mm
  92.  
  93.      // page size - ENVELOPES
  94.      // - correct Envelopes must be installed for accurate registration
  95.    #define MONARCH                     80   // commercial envelope (3 7/8 x 7 1/2)
  96.    #define COMMERCIAL_10               81   // commercial envelope (4 1/8 x 9 1/2)
  97.    #define INTERNATIONAL_DL            90   // 110mm x 220mm
  98.    #define INTERNATIONAL_C5            91   // 162mm x 229mm
  99.  
  100.      // Page Length
  101.      // # lines per page portrait & landscape
  102.    #define EXECUTIVE_6_LPI_PORT        63
  103.    #define EXECUTIVE_8_LPI_PORT        84
  104.    #define EXECUTIVE_6_LPI_LAND        43
  105.    #define EXECUTIVE_8_LPI_LAND        58
  106.    #define LETTER_6_LPI_PORT           66
  107.    #define LETTER_8_LPI_PORT           88
  108.    #define LETTER_6_LPI_LAND           51
  109.    #define LETTER_8_LPI_LAND           68
  110.    #define LEGAL_6_LPI_PORT            84
  111.    #define LEGAL_8_LPI_PORT            112
  112.    #define LEGAL_6_LPI_LAND            0
  113.    #define LEGAL_8_LPI_LAND            0
  114.    #define A4_6_LPI_PORT               70
  115.    #define A4_8_LPI_PORT               93
  116.    #define A4_6_LPI_LAND               49
  117.    #define A4_8_LPI_LAND               66
  118.  
  119.      // paper source selection
  120.    #define EJECT_PAGE                  0
  121.    #define UPPER_TRAY                  1
  122.    #define MANUAL_IMPUT                2
  123.    #define MANUAL_ENVELOPE_IMPUT       3
  124.    #define LOWER_TRAY                  4
  125.    #define ENVELOPE_FEEDER             6
  126.  
  127.      // paper destination selection
  128.    #define UPPER_OUTPUT_BIN            1
  129.    #define LOWER_OUTPUT_BIN            2
  130.  
  131.      // logical page orientation
  132.    #define PORTRAIT                    0
  133.    #define LANDSCAPE                   1
  134.    #define REVERSE_PORTRAIT            2
  135.    #define REVERSE_LANDSCAPE           3
  136.  
  137.      // logical page print direction
  138.    #define PD_PORTRAIT                 0
  139.    #define PD_LANDSCAPE                90
  140.    #define PD_REVERSE_PORTRAIT         180
  141.    #define PD_REVERSE_LANDSCAPE        270
  142.  
  143.  
  144.      // logical page MARGIN & TEXT SET
  145.    #define CLEAR_HORIZONTAL_MARGIN     0
  146.  
  147.      // logical perforation SET
  148.    #define DISABLE                     0
  149.    #define ENABLE                      1
  150.  
  151.      // LINES PER INCH
  152.    #define LPI_1                       1
  153.    #define LPI_2                       2
  154.    #define LPI_3                       3
  155.    #define LPI_4                       4
  156.    #define LPI_6                       6
  157.    #define LPI_8                       8
  158.    #define LPI_12                     12
  159.    #define LPI_16                     16
  160.    #define LPI_24                     24
  161.    #define LPI_48                     48
  162.  
  163.  
  164. //-- FONT CONTROL COMMANDS
  165.  
  166.      // font parameters
  167.    #define SYMBOL_SET                  0
  168.    #define SPACING                     1
  169.    #define PITCH                       2
  170.    #define POINT_SIZE                  3
  171.    #define STYLE                       4
  172.    #define STROKE_WEIGHT               5
  173.    #define TYPEFACE_FAMILY             6
  174.  
  175.  
  176.      // soft font control
  177.    #define DELETE_ALL                  0
  178.    #define DELETE_ALL_TEMP             1
  179.    #define DELETE_LAST_FONT            2
  180.    #define DELETE_CHAR_CODE            3
  181.    #define MAKE_TEMPORARY              4
  182.    #define MAKE_PERMANENT              5
  183.    #define COPY_FONT_AS_TEMP           6
  184.    #define SELECT_FONT_PRIM            7
  185.    #define SELECT_FONT_SECOND          8
  186.    #define SELECT_DFLT_PRIM            9
  187.    #define SELECT_DFLT_SECOND         10
  188.    #define TRANSPARENT_PRINT_DATA     11
  189.  
  190.  
  191.      // macro control
  192.    #define START_DEFINITION            0
  193.    #define STOP_DEFINITION             1
  194.    #define EXECUTE_MACRO               2
  195.    #define CALL_MACRO                  3
  196.    #define ENABLE_AUTO_OVERLAY         4
  197.    #define DISABLE_AUTO_OVERLAY        5
  198.    #define DELETE_ALL_MACROS           6
  199.    #define DELETE_ALL_TEMP_MACROS      7
  200.    #define DELETE_MACRO_LAST           8
  201.    #define MAKE_MACRO_TEMPORARY        9
  202.    #define MAKE_MACRO_PERMANENT       10
  203.  
  204.  
  205.      // SOURCE / PATTERN Transparency Options
  206.    #define TRANSPARENT                 0
  207.    #define OPAQUE                      0
  208.  
  209.      // Select current Pattern Options
  210.    #define SOLID_BLACK                 0
  211.    #define SOLID_WHITE                 1
  212.    #define HP_SHADING_PATTERN          2
  213.    #define HP_CROSSHATCH_PATTERN       3
  214.  
  215.  
  216.      // Area Shade fill patterns
  217.      // you can use different numbers
  218.      // but it won't make a difference
  219.    #define SHADE_2_PERCENT             2
  220.    #define SHADE_10_PERCENT            10
  221.    #define SHADE_20_PERCENT            20
  222.    #define SHADE_35_PERCENT            35
  223.    #define SHADE_55_PERCENT            55
  224.    #define SHADE_80_PERCENT            80
  225.    #define SHADE_99_PERCENT            99
  226.    #define SHADE_100_PERCENT           100
  227.  
  228.      // Area Pattern fill patterns
  229.    #define PATTERN_1                   1
  230.    #define PATTERN_2                   2
  231.    #define PATTERN_3                   3
  232.    #define PATTERN_4                   4
  233.    #define PATTERN_5                   5
  234.    #define PATTERN_6                   6
  235.  
  236.  
  237.  
  238.      // Fill Rectangular Area Options
  239.    #define BLACK_FILL                  0
  240.    #define WHITE_FILL                  1
  241.    #define SHADED_FILL                 2
  242.    #define CROSSHATCH_FILL             3
  243.    #define CURRENT_PATTERN_FILL        5
  244.  
  245.      // printer cursor positioning methods
  246.    #define INCHES                      1
  247.    #define DOTS                        2
  248.    #define ROWCOL                      3
  249.    #define MILLIMETER                  4
  250.    #define COL_POSITION                5
  251.    #define ROW_POSITION                6
  252.  
  253.  
  254.    #define FIXED_SPACING               0
  255.    #define PROPORTIONAL_SPACING        1
  256.  
  257.      // line termination command  read tech manual for further definition
  258.    #define DEFAULT                     0
  259.    #define CR_CRLF                     1
  260.    #define LF_CRLF_CRFF                2
  261.    #define CR_CRLF_CRLF_CRFF           3
  262.  
  263.  
  264.      // printer cursor stack positioning methods
  265.    #define PUSH                        0
  266.    #define POP                         1
  267.  
  268.  
  269. // fonts processing
  270.  
  271.      // underline command control
  272.  
  273.    #define FIXED_UNDERLINE_ON          0
  274.    #define FLOATING_UNDERLINE_ON       3
  275.    #define UNDERLINE_OFF               9
  276.  
  277.  
  278.      // Symbol Set Font Assignment
  279.    #define PRIMARY_SYMBOL_SET          0
  280.    #define SECONDARY_SYMBOL_SET        1
  281.  
  282.      // symbol sets
  283.    #define ISO_60_NORWEGIAN_1          1
  284.    #define ISO_4_UNITED_KINGDOM        2
  285.    #define ISO_69_FRENCH               3
  286.    #define ISO_21_GERMAN               4
  287.    #define ISO_15_ITALIAN              5
  288.    #define MICROSOFT_PUBLISHING        6
  289.    #define DESKTOP                     7
  290.    #define PS_TEXT                     8
  291.    #define VENTURA_INTERNATIONAL       9
  292.    #define VENTURA_US                  10
  293.    #define VENTURA_ITC_ZAPF_DINGBATS   11
  294.    #define PS_ITC_ZAPF_DINGBATS        12
  295.    #define ITC_ZAPF_DINGBATS_SERIES100 13
  296.    #define ITC_ZAPF_DINGBATS_SERIES200 14
  297.    #define ITC_ZAPF_DINGBATS_SERIES300 15
  298.    #define PS_MATH                     16
  299.    #define VENTURA_MATH                17
  300.    #define MATH_8                      18
  301.    #define ECMA_94_LATIN_1             19
  302.    #define ISO_11_SWEDISH              20
  303.    #define ISO_17_SPANISH              21
  304.    #define ISO_6_ASCII                 22
  305.    #define LEGAL_SYMBOL                23
  306.    #define ROMAN_8                     24
  307.    #define WINDOWS                     25
  308.    #define PC_8                        26
  309.    #define PC_8_DN                     27
  310.    #define PC_850                      28
  311.    #define PI_FONT                     29
  312.  
  313.      // style selections
  314.    #define UPRIGHT_SOLID               1
  315.    #define ITALIC                      2
  316.    #define CONDENSED                   3
  317.    #define CONDENSED_ITALIC            4
  318.    #define COMPRESSED_EXTRA_CONDENSED  5
  319.    #define EXPANDED                    6
  320.    #define OUTLINE                     7
  321.    #define INLINE                      8
  322.    #define SHADOWED                    9
  323.    #define OUTLINE_SHADOWED            10
  324.  
  325.  
  326.      // Stroke weight selections
  327.    #define ULTRA_THIN                  1
  328.    #define EXTRA_THIN                  2
  329.    #define THIN                        3
  330.    #define EXTRA_LIGHT                 4
  331.    #define LIGHT                       5
  332.    #define DEMI_LIGHT                  6
  333.    #define SEMI_LIGHT                  7
  334.    #define MEDIUM_BOOK_OR_TEXT         8
  335.    #define SEMI_BOLD                   9
  336.    #define DEMI_BOLD                   10
  337.    #define BOLD                        11
  338.    #define EXTRA_BOLD                  12
  339.    #define BLACK                       13
  340.    #define EXTRA_BLACK                 14
  341.    #define ULTRA_BLACK                 15
  342.  
  343.  
  344.      // typeface family selections
  345.    #define COURIER                     1
  346.    #define LINEPRINTER                 2
  347.    #define UNIVERS                     3
  348.    #define CG_TIMES                    4
  349.    #define ANTIQUE_OLIVE               5
  350.    #define ITC_AVANT_GARDE             6
  351.    #define BASKERVILLE                 7
  352.    #define ITC_BENGUIAT                8
  353.    #define CG_BODONI                   9
  354.    #define ITC_BOOKMAN                 10
  355.    #define BRUSH                       11
  356.    #define CG_CENTURY_SCHOOLBOOK       12
  357.    #define ITC_CHELTENHAM              13
  358.    #define ITC_CLEARFACE               14
  359.    #define COOPER                      15
  360.    #define DOM_CASUAL                  16
  361.    #define ITC_ERAS                    17
  362.    #define FUTURA_II                   18
  363.    #define ITC_GALLIARD                19
  364.    #define GARAMOND                    20
  365.    #define GILL_SANS                   21
  366.    #define CG_GAUDY_OLD_STYLE          22
  367.    #define ITC_KORINA                  23
  368.    #define ITC_LUBALIN_GRAPH           24
  369.    #define CG_MELLIZA                  25
  370.    #define MICROSTYLE                  26
  371.    #define CG_OMEGA                    27
  372.    #define CG_PALACIO                  28
  373.    #define PARK_AVENUE                 29
  374.    #define REVUE                       30
  375.    #define ROCKWELL                    31
  376.    #define ITC_SOUVENIR                32
  377.    #define ITC_TIFFANY                 33
  378.    #define CG_TRIUMVIRATE              35
  379.    #define UNCIAL                      36
  380.  
  381.  
  382.  
  383.      // raster graphics options
  384.    #define GRAPHICS_RESOLUTION         1
  385.    #define PRESENTATION_MODE           2
  386.    #define RASTER_HEIGHT               3
  387.    #define RASTER_WIDTH                4
  388.    #define START_RASTER_GRAPHICS       5
  389.    #define END_RASTER_GRAPHICS         6
  390.    #define RASTER_Y_OFFSET             7
  391.    #define COMPRESSION_MODE            8
  392.  
  393.    #define DPI_75                      75
  394.    #define DPI_100                     100
  395.    #define DPI_150                     150
  396.    #define DPI_300                     300
  397.  
  398.    #define LOGICAL_PAGE_MODE           0
  399.    #define PHYSICAL_PAGE_MODE          3
  400.  
  401.    #define LEFT_MARGIN_X_0             0
  402.    #define LEFT_MARGIN_X_CURRENT       1
  403.  
  404.      // compression
  405.    #define UNENCODED                   0
  406.    #define RUN_LENGTH_ENCODED          1
  407.    #define TAGGED_IMAGED_FILE_FORMAT   2
  408.    #define DELTA_ROW_COMPRESSION       3
  409.  
  410.  
  411.      // box related manifest constants
  412.  
  413.    static aBoxParams[9]
  414.  
  415.    #define BOX_PARAM_format            aBoxParams[ 1 ]     //  nXYfmt
  416.    #define BOX_top_line                aBoxParams[ 2 ]     //  nYt
  417.    #define BOX_left_side               aBoxParams[ 3 ]     //  nXl
  418.    #define BOX_bottom_line             aBoxParams[ 4 ]     //  nYb
  419.    #define BOX_right_side              aBoxParams[ 5 ]     //  nXr
  420.    #define BOX_line_thickness          aBoxParams[ 6 ]     //  nT
  421.    #define BOX_RAF_option              aBoxParams[ 7 ]     //  nRAF
  422.    #define BOX_line_pattern            aBoxParams[ 8 ]     //  nPattern
  423.    #define BOX_shadow                  aBoxParams[ 9 ]     //  nShadow
  424.  
  425.    #define   SHADOW_NONE               0
  426.    #define   SHADOW_NE                 1
  427.    #define   SHADOW_SE                 2
  428.    #define   SHADOW_NW                 3
  429.    #define   SHADOW_SW                 4
  430.  
  431.